/*
 * @Author: 肖思汗 
 * @Date: 2025-06-27 19:43:58 
 * @Last Modified by: 肖思汗
 * @Last Modified time: 2025-07-30 15:51:40
 */


import Taro from "@tarojs/taro";
import { get, isUndefined } from "lodash";
import { makeAutoObservable } from "mobx";
import utils from "./utils";
class UtilsStore {
    constructor() {
        makeAutoObservable(this, {}, { deep: false });

        Taro.getSystemInfo().then((res) => {
            const { windowHeight, windowWidth, statusBarHeight, pixelRatio } = Taro.getSystemInfoSync();
            // 获取胶囊按钮的位置信息
            const menuButtonRect = Taro.getMenuButtonBoundingClientRect();
            console.log("menuButtonRect", menuButtonRect);

            this.devicePixelRatio = pixelRatio;

            // 屏幕的高度
            this.windowHeight = windowHeight;
            // 屏幕的宽度
            this.windowWidth = windowWidth;

            this.safeAreaTop = get(res, 'safeArea.top', 0) || statusBarHeight || 40;
            this.safeAreaBottom = windowHeight - get(res, 'safeArea.bottom', 0);


            // 标题栏的高度通常是固定
            this.titleTop = this.safeAreaTop + 44;

            // 底部安全距离 + 底部导航栏的高度
            this.barBottom = this.safeAreaBottom + (this.safeAreaBottom > 0 ? utils.rpx2px(100 + 20) : utils.rpx2px(100 + 20 + 20));

            // 中间的容器高度
            this.containerHeight = this.windowHeight - this.titleTop - this.barBottom;
        });

    }

    devicePixelRatio = 1;  // 设备像素比

    windowHeight = 0; // 屏幕的高度
    windowWidth = 0; // 屏幕的宽度

    safeAreaTop = 0; // 顶部安全区域的高度
    safeAreaBottom = 0; // 底部安全区域的高度

    titleTop = 0; // 标题栏的位置
    barBottom = 0; // 底部导航栏的位置

    //中间的容器高度
    containerHeight = 0; // 中间的容器高度

    // 显示新手指引第1步,一共4步
    showTour1 = !(Taro.getStorageSync("showTour1") === false);
    setShowTour1(value: boolean) {
        this.showTour1 = value;
        Taro.setStorageSync("showTour1", value);
    }
    // 显示新手指引第2步,一共4步
    showTour2 = !(Taro.getStorageSync("showTour2") === false);
    setShowTour2(value: boolean) {
        this.showTour2 = value;
        Taro.setStorageSync("showTour2", value);
    }
    // 显示新手指引第3步,一共4步
    showTour3 = !(Taro.getStorageSync("showTour3") === false);
    setShowTour3(value: boolean) {
        this.showTour3 = value;
        Taro.setStorageSync("showTour3", value);
    }
    // 显示新手指引第4步,一共4步
    showTour4 = !(Taro.getStorageSync("showTour4") === false);
    setShowTour4(value: boolean) {
        this.showTour4 = value;
        Taro.setStorageSync("showTour4", value);
    }
}

const utilsStore = new UtilsStore();

export default utilsStore;